1. Field of the Invention
The invention relates to a system and method for managing and controlling data flow within a network device, such as a multiple-linked or multiple-stacked chip device.
2. Description of the Related Art
Numerous types of flow control techniques and mechanisms have been devised for data packet transmission systems. Such control mechanisms typically regulate a source's operation with respect to the transmission of data into a network and are typically implemented in the operating system and in the network protocol software. For example, if a source attempts to send a large quantity of data to a destination device or network, and the destination device is overloaded, the destination software buffers store the data that cannot be transmitted and attempts to deliver the data that can be transmitted. Namely, when the destination device becomes congested, the destination device may use at least one of a variety of mechanism, such as dropping incoming data packets or sending out a pause frame signal to the source to suspend the transmission of the data. When there is no more buffer space available, the operating system typically suspends transmission of data space becomes available. The network protocol may also slow down the transmission of data from the source because the receiving application cannot keep up with the transmission rate of the data flow. These types of control mechanisms are known as flow control mechanisms.
Congestion may be generated when multiple consecutive bursts containing large data packets are received into the destination device. Congestion in a destination device, such as a chip or a switch, can occur at an input port or at an output port. In a multiple-linked or multiple-stacked chip configurations where there are several chips linked or stacked together, respectively, through expansion ports, i.e. link ports, congestion may be generated due to the data packets received in an input port (local port) connected to an external device, the expansion port or both. A burst is a continuous transfer of data from the source network to the destination device without any interruptions, which contains numerous large data packets that are received consecutively into one of the chips of the destination device. When several consecutive bursts are received containing a large number of data packets, the receiving chip or chips may be unable to respond fast enough to handle the large volume of incoming data packets. Namely, the receiving chip may be unable to process and transmit the data out of the destination device before the burst is received into the destination device. Therefore, the buffers of the receiving chip of the destination device will begin to fill-up with the incoming data packets and become saturated with the data packets. Once the buffers become saturated and the output ports of the buffers are congested, the destination device will begin to drop the remaining incoming data packets.
When the traffic of the incoming data packets exceeds the nominal capacity of the destination device, throughput degradation results. Throughput efficiency represents the ability of a network device to handle the offered load. For instance, if the network traffic is bursty and is directed to a single input of a destination device, the memory buffer of the destination device may overflow, which results in a loss of throughput and packet loss. Flow control mechanism have been developed by which the congested destination device limits access to the network by placing thresholds on the memory buffer, modifying the transmission rates, or shutting down the sending source for a prescribed amount of time. Flow control techniques are implemented within a system to throttle the source traffic for a specified period of time so that the congestion eases. One such flow control technique is a pause frame, which pauses the transmission of frames being transmitted from the input source to the destination device. The amount of pause time specified in the pause frame should be such that the congestion is expected to ease during that time. If the pause frame time is too large, then starvation of the network may occur. If the pause frame time is too low, then additional pause frames may need to be sent. However, sending too many pause frames may adversely affect the throughput of the destination device. Another flow control technique is the selection of the threshold, which triggers a pause frame. The threshold values should be selected so that such additional frames can be received without dropping the incoming data packets, since the initiation and transmission of a pause frame may take some time for the system to implement.
Therefore, what is needed is a novel method of providing a level of assurance to the network that the network's Quality of Service (QoS) can be satisfied. A QoS guarantee warrants the timely delivery of information on networks, control bandwidth, set priorities for selected traffic, and provide a good level of security. QoS is usually associated with being able to deliver time-sensitive information such as live video and voice while still maintaining enough bandwidth to deliver other traffic, albeit at a lower transmission rate. Managing the QoS within a network usually requires managing and controlling the data flow from the source network and within the destination device so that the incoming data packets are not dropped during transmission.